#ifndef __MCPLANEITEM_H_
#define __MCPLANEITEM_H_

class MCVector2;
class MCPoint2D;
class MCMatrix3;

enum MCPlaneItemType
{
    VOID = 0,
    POINT,
    LINE_SEGMENT,
    CIRCLE,
    ELLIPSE,
    ARC,
    DIMENSION
};

class MCPlaneItem
{
public:

    virtual MCPlaneItemType type() = 0;
    virtual void setPositionAt(const MCPoint2D &at) = 0;
    virtual void move(const MCVector2 &to) = 0;
    virtual void scale(double scale) = 0;
    virtual void transform(const MCMatrix3 &transform) = 0;

};

#endif // !__MCPLANEITEM_H_
